import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["logo", "message", "contentStyle", "title", "subTitle", "actions", "children"];
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useIntl } from '@ant-design/pro-provider';
import { ConfigProvider } from 'antd-v4';
import { useContext, useMemo } from 'react';
import { ProForm } from '../ProForm';
import './index.less';

function LoginForm(props) {
  var _proFormProps$submitt;

  var logo = props.logo,
      message = props.message,
      contentStyle = props.contentStyle,
      title = props.title,
      subTitle = props.subTitle,
      actions = props.actions,
      children = props.children,
      proFormProps = _objectWithoutProperties(props, _excluded);

  var intl = useIntl();
  var submitter = proFormProps.submitter === false ? false : _objectSpread(_objectSpread({
    searchConfig: {
      submitText: intl.getMessage('loginForm.submitText', '登录')
    }
  }, proFormProps.submitter), {}, {
    submitButtonProps: _objectSpread({
      size: 'large',
      style: {
        width: '100%'
      }
    }, (_proFormProps$submitt = proFormProps.submitter) === null || _proFormProps$submitt === void 0 ? void 0 : _proFormProps$submitt.submitButtonProps),
    render: function render(_, dom) {
      var _proFormProps$submitt2;

      var loginButton = dom.pop();

      if (typeof (proFormProps === null || proFormProps === void 0 ? void 0 : (_proFormProps$submitt2 = proFormProps.submitter) === null || _proFormProps$submitt2 === void 0 ? void 0 : _proFormProps$submitt2.render) === 'function') {
        var _proFormProps$submitt3, _proFormProps$submitt4;

        return proFormProps === null || proFormProps === void 0 ? void 0 : (_proFormProps$submitt3 = proFormProps.submitter) === null || _proFormProps$submitt3 === void 0 ? void 0 : (_proFormProps$submitt4 = _proFormProps$submitt3.render) === null || _proFormProps$submitt4 === void 0 ? void 0 : _proFormProps$submitt4.call(_proFormProps$submitt3, _, dom);
      }

      return loginButton;
    }
  });
  var context = useContext(ConfigProvider.ConfigContext);
  var baseClassName = context.getPrefixCls('pro-form-login');

  var getCls = function getCls(className) {
    return "".concat(baseClassName, "-").concat(className);
  };
  /** 生成logo 的dom，如果是string 设置为图片 如果是个 dom 就原样保留 */


  var logoDom = useMemo(function () {
    if (!logo) return null;

    if (typeof logo === 'string') {
      return _jsx("img", {
        src: logo
      });
    }

    return logo;
  }, [logo]);
  return _jsxs("div", {
    className: getCls('container'),
    children: [_jsxs("div", {
      className: getCls('top'),
      children: [title || logoDom ? _jsxs("div", {
        className: getCls('header'),
        children: [logoDom ? _jsx("span", {
          className: getCls('logo'),
          children: logoDom
        }) : null, title ? _jsx("span", {
          className: getCls('title'),
          children: title
        }) : null]
      }) : null, subTitle ? _jsx("div", {
        className: getCls('desc'),
        children: subTitle
      }) : null]
    }), _jsxs("div", {
      className: getCls('main'),
      style: _objectSpread({
        width: 328
      }, contentStyle),
      children: [_jsxs(ProForm, _objectSpread(_objectSpread({
        isKeyPressSubmit: true
      }, proFormProps), {}, {
        submitter: submitter,
        children: [message, children]
      })), actions ? _jsx("div", {
        className: getCls('other'),
        children: actions
      }) : null]
    })]
  });
}

export { LoginForm };